Lớp tổng hợp Class trong C++

Một lớp tổng hợp là một lớp không có khai báo bộ khởi tạo, không có thuộc tính truy cập riêng tư hay bảo vệ của các thành viên dữ liệu không tĩnh, không có các lớp cơ sở, không có phương thức ảo. Như vậy một lớp có thể được khởi tạo bằng cách gán thể hiện của lớp bằng một danh sách lần lượt các giá trị thuộc tính ngăn cách nhau bởi dấu phẩy, danh sách này được bao quanh bởi cặp dấu ngoặc nhọn. Đoạn code dưới đây có cùng ý  nghĩa trong C và C++.

 1struct C { 2  int a; 3  double b; 4}; 5 6struct D { 7  int a;  8  double b; 9  C c;10};1112//  khởi tạo một đối tượng kiểu C với một danh sách khởi tạo13C c = {1, 2.0};1415/* D có một tập hợp con của loại C. Trong những trường 16hợp như vậy, các mệnh đề khởi tạo có thể được lồng vào nhau  */17D d = {10, 20.0, {1, 2.0}};

Cấu trúc POD

Cấu trúc POD (Cấu trúc dữ liệu cũ thuần túy) là một lớp tổng hợp không có thành viên dữ liệu không tĩnh thuộc kiểu non-POD-struct, non-POD-union (hoặc mảng thuộc các kiểu như vậy) hoặc tham chiếu và không có người dùng - toán tử gán được xác định và không có trình hủy do người dùng xác định. Một cấu trúc POD có thể được cho là tương đương với C ++ của cấu trúc C. Trong hầu hết các trường hợp, cấu trúc POD sẽ có cùng bố cục bộ nhớ với cấu trúc tương ứng được khai báo trong C. Vì lý do này, cấu trúc POD đôi khi được gọi một cách thông tục là "cấu trúc kiểu C"

Thuộc tính được chia sẻ giữa cấu trúc trong C và cấu trúc POD trong C++

  • Các thành viên dữ liệu được cấp phát để các thành viên sau này có địa chỉ cao hơn trong một đối tượng, ngoại trừ trường hợp được phân tách bởi một chỉ định truy cập.
  • Hai kiểu cấu trúc POD tương thích với bố cục nếu chúng có cùng số lượng thành viên dữ liệu không tĩnh và các thành viên dữ liệu không tĩnh tương ứng (theo thứ tự) có kiểu tương thích với bố cục.
  • Cấu trúc POD có thể chứa phần đệm không tên.
  • Một con trỏ đến đối tượng cấu trúc POD, được chuyển đổi phù hợp bằng cách sử dụng diễn giải lại, trỏ đến thành viên ban đầu của nó và ngược lại, ngụ ý rằng không có phần đệm ở đầu cấu trúc POD.
  • Một cấu trúc POD có thể được sử dụng với macro offset.